#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>

#define N 5

int main()
{
    // wait / waitpid
    pid_t id;
    for (int i = 0; i < N; i++)
    {
        id = fork();
        if (id == 0)
        {
            //RunChild();
            exit(i);
        }
        printf("id = %d\n",id);
        sleep(1);//printf("create child process: %d success\n", id); // 这句话只有父进程才会执行
    }

    // sleep(10);

    // 等待
    // for (int i = 0; i < N; i++)
    // {
    //     // wait当任意一个子进程退出的时候，wait回收子进程
    //     // 如果任意一个子进程都不退出呢？
    //     // pid_t id = wait(NULL);
    //     int status = 0;
    //     pid_t id = waitpid(-1, &status, 0);
    //     if (id > 0)
    //     {
    //         printf("wait %d success, exit code: %d\n", id, WEXITSTATUS(status));
    //     }
    // }

    sleep(5);
    return 0;
}